package com.gitee.wsl.mathematics.geometry.api.op

import com.gitee.wsl.mathematics.coordinate.Coordinate

interface Movable<T:Number,V:Coordinate<T,V>> {
    /** Creates a new shape with the same size but the current position [offset] by the given amount. */
    fun movedBy(offset: V):Movable<T,V>

    /** Creates a new shape with the same size but the current position is set to [position]. */
    fun movedTo(position: V):Movable<T,V>
}